package com.itheima;

import com.itheima.proxy.ServiceJDKProxy;
import com.itheima.service.UserService;
import com.itheima.service.impl.UserServiceImpl;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com.itheima")
public class SpringApp {

    @Bean   // 此时把代理对象添加到IOC容器
    public UserService getUserService(){
        // 构建一个原始对象 目标对象  userService这个是否又耗时统计
        UserServiceImpl userService = new UserServiceImpl();
        // 产生一个代理对象，代理对象又耗时统计,通过getServiceProxy这个方法，会得到一个代理对象
        // 此代理对象有耗时统计
        // 这个代理类，是用JDK动态代理实现，也动态的基于UserService接口产生的
        UserService serviceProxy = (UserService) ServiceJDKProxy.getServiceProxy(userService);
        return serviceProxy;
    }
}
